// 合并复用原则
// Composite Reuse Principle, CRP
// 
// 这里用一个司机开车的例子来解释什么是合并复用原则
// 原来实现司机又能开宝马又能开大众的代码是 在 CRP-00.hpp里的
//

#pragma once

#include <iostream>

// #include "Library-00.hpp"
// void test00() {
// 	Library * lib = new Library;
// 	Application *app = new Application;

// 	lib->Step01();
// 	app->Step02();
// 	lib->Step03();
// 	app->Step04();
// 	lib->Step05();

// 	delete lib;
// 	delete app;
// }

// 输出：
// Library::Step01
// Application::Step02
// Library::Step03
// Application::Step04
// Library::Step05

// 如果应用 模板模式
#include "Library-01.hpp"
void test01() {
	Library *app = new Application;

	app->run();

	delete app;
}
// 输出：
// Library::run
// Library::Step01
// Application::Step02
// Library::Step03
// Application::Step04
// Library::Step05

int main() {
	// test00();
	test01();
	return 0;
}
